//
// Created by Jisam on 2024/8/19 18:15.
// Solution of  分治+递归
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <vector>

using namespace std;

#define endl "\n"
#define PSI pair<string,int>
#define PII pair<int,int>
#define PDI pair<double,int>
#define PDD pair<double,double>
#define VVI vector<vector<int>>
#define VI vector<int>
#define VS vector<string>

#define PQLI priority_queue<int, vector<int>, less<int>>
#define PQGI priority_queue<int, vector<int>, greater<int>>
#define code_by_jisam ios::sync_with_stdio(false),cin.tie(nullptr)
using namespace std;
using u32 = unsigned;
using i64 = long long;
using u64 = unsigned long long;
using i128 = __int128;
int dx[] = {-1, 1, 0, 0, 1, 1, -1, -1,};
int dy[] = {0, 0, -1, 1, 1, -1, -1, 1,};

const int INF = 0x3f3f3f3f,MOD = 1e9+7;
template<typename T> T ksm(T b, T e, T m) {
    T r = 1;
    while (e) {
        if (e & 1) r = (r * b) % m;
        b = (b * b) % m;
        e >>= 1;
    }
    return r;
}

// 将整数x表示为若干个不同的2的幂次的和，其中每个2的幂次可以是负数。
// 该函数递归地构建并打印出x的这种表示形式。
void partition(int x) {
    // 用于在输出中分隔不同的2的幂次项
    bool flag = false;
    // 当x不为0时，继续分解
    while (x != 0)
    {
        // 找到x中最大的2的幂次
        int t = int(log2(x));

        // 如果已经输出过其他项，则在当前项前输出"+"
        if (flag) cout << "+";
        // 根据t的值输出相应的形式
        if (t == 1) cout << "2";
        else if (t == 0) cout << "2(0)";
        else
        {
            // 如果t大于1，递归输出t的2的幂次表示形式
            cout << "2(";
            partition(t);
            cout << ")";
        }
        // 从x中减去刚刚分解出的2的幂次对应的值
        x -= ksm(2,t,MOD);
        // 标记已经输出了一个项
        flag = true;
    }
}


void solution() {
    int n;
    cin >> n;
    partition(n);
}

int main() {
    code_by_jisam;
    int T = 1;
//    cin >> T;
    while (T--) {
        solution();
    }
    return 0;
}